1) Field of the Invention
This invention pertains to the field of communication networks, and, more specifically, to a method of link aggregation and selecting communication paths for communicating messages between a sending communication device and a receiving communication device in a communication network.
2) Description of the Related Art
Link aggregation is a method of communication used between communication devices whereby multiple communication paths are set up between pairs of such communication devices. Multiple communication paths are used to (1) provide more bandwidth than one such path can provide, or (2) to provide redundancy so that communication can continue even when some (but not all) of the paths are nonfunctional, or (3) both.
Messages are passed between two such communication devices. One device is the sending device; the other is the receiving device. Each message is passed from the sending communication device to the receiving communication device via one of the multiple aggregated communication paths.
For each message that must pass between the two communication devices, the sending communication device must choose one of the communication paths connecting the sending communication device to the receiving communication device.
Two examples of particular communication devices for which this technique of link aggregation is useful are (1) an Ethernet switching bridge, and (2) a router. In these cases, the communication paths might be Ethernet links, which might be implemented using coaxial cable, copper wire pair technology, optical fiber, or radio links. However, the technique is generally applicable to other types of devices, and other types of communication paths.
Also, the same technique can be used independently between multiple pairs of communication devices simultaneously, including the case where a single communication device simultaneously participates in multiple sets of multiple communication paths. The same technique is also useful for link methods other than Ethernet including, for example, fiber distributed data interface (FDDI), integrated services digital network (ISDN), asynchronous transfer mode (ATM), and X.25.
For each message that must pass between the two communication devices, the sending communication device must choose one of the communication paths connecting the sending communication device to the receiving communication device. In some cases, the message may be xe2x80x9cmulticast,xe2x80x9d or delivered to multiple destination receiving devices. Selection of a communication path should be made with due consideration of any or all of the following factors:
A link aggregation group is a group of data paths, all of which link a sending communication device to a single receiving communication device, and any given message between the two devices on the aggregated group of data paths should be transmitted via exactly one of the paths.
None, some, or all of the outbound paths of the sending communication device may be members of a link aggregation group. A link aggregation method should affect only destination decisions which are part of the link aggregation group; it does not affect the other destination decisions.
There may be multiple link aggregation groups, each group being connected to a distinct receiving communication device. The link aggregation methodology is applied independently to multiple aggregation groups.
It is desirable to support the methodology at low cost, even in xe2x80x9cdumbxe2x80x9d communication devices. A xe2x80x9cdumbxe2x80x9d communication device is one that does not provide a xe2x80x9cmanagementxe2x80x9d computer. Configuration of such xe2x80x9cdumbxe2x80x9d devices is typically done using DIP switches or the like, rather than communicating with the device as a networked computer, or using a connected terminal. In this case, it is desirable that the configuration of the link aggregation group(s) be capable of being done in this low cost manner.
Some of the multiple communication paths may be temporarily nonfunctional.
The communication paths may be non-homogeneous, with some paths providing higher bandwidth than others.
Some communication paths may be more heavily utilized than others, and for a given message it may be desirable to choose a path based on communication path availability. This is a form of load balancing.
The communication paths may have different propagation speeds, and it may be desirable for related messages (e.g., part of a same xe2x80x9cconversationxe2x80x9d) to be passed over the same communication path to preserve the order of the messages.
The last factor is of particular interest, because there are many communication devices that either require this characteristic, or that operate more efficiently when the communication has this characteristic.
Previous approaches to solving this problem have relied on the use of dedicated microprocessors to configure and operate the link aggregation communication path selection mechanism. Such approaches are expensive.
Previous approaches to solving this problem have not handled unreliable links well. They have chosen the path statically, and therefore could not avoid failed paths.
Accordingly, it would be advantageous to provide for the configuration and operation of a link aggregation mechanism that does not require the use of dedicated software-based computing facilities. It would further be advantageous to provide a mechanism which considers all of the factors listed above. Other and further objects and advantages will appear hereinafter.
The present invention comprises a system and method of link aggregation and path selection in a communication network comprising a sending communication device, a receiving communication device, and a plurality of communication paths from the sending communication device to the receiving communication device.
In one aspect of the invention, a link selector compares members of a link aggregation group with a list of trial destination communication paths produced by a routing mechanism in the communication device. If one of the trial destination communication paths is a member of the link aggregation group, then one of the members of the link aggregation group is selected for sending a message to the receiving communication device. The selected path might not be the same as the one listed in the trial bitmap.
In another aspect of the invention, the selected communication path is identified by a path number produced by a path selection table in the sending communication device. Message parameters from the message are processed to generate an index into the path selection table. The index contains an entry with a path number identifying one of the communication paths between the sending communication device and the receiving communication device. The message is sent to the receiving communication device via the communication path corresponding to the path number produced by the path selection table.
In yet another aspect of the present invention, trial destination communication paths which are not members of the link aggregation group are independently enabled for sending the message.